package page

import (
	"context"
)

// Repository 自定义页面仓储接口
type Repository interface {
	// Create 创建自定义页面
	Create(ctx context.Context, page *Page) error

	// Update 更新自定义页面
	Update(ctx context.Context, page *Page) error

	// Delete 删除自定义页面
	Delete(ctx context.Context, id uint) error

	// GetByID 通过ID获取自定义页面
	GetByID(ctx context.Context, id uint) (*Page, error)

	// GetBySlug 通过Slug获取自定义页面
	GetBySlug(ctx context.Context, slug string) (*Page, error)

	// ExistsByTitle 检查标题是否已存在
	ExistsByTitle(ctx context.Context, title string, excludeID uint) (bool, error)

	// ExistsBySlug 检查Slug是否已存在
	ExistsBySlug(ctx context.Context, slug string, excludeID uint) (bool, error)

	// List 获取自定义页面列表
	List(ctx context.Context, offset, limit int, status *int) ([]*Page, int64, error)

	// IncrementViewCount 增加浏览次数
	IncrementViewCount(ctx context.Context, id uint) error

	// UpdateStatus 更新页面状态
	UpdateStatus(ctx context.Context, id uint, status int) error
}
